Distributed computing systems are used in a wide variety of implementations to provide computing services on a large scale. Distributed systems offer a number of advantages, including scalability (additional members may be added to the system to provide additional capability), high availability (if one member breaks down, another member can be called upon to provide the services of the broken member), and flexibility (a number of different members may be called upon to provide a service). One drawback of distributed systems, however, is that they are complex and can be difficult to manage. This is especially true if the distributed system has a large number of members, and each member can provide multiple services, such that there is service overlap among the members.
To facilitate system management, a master election mechanism has been developed, whereby one of the members is elected as the “master” of the distributed system. Once elected, the master is given certain management responsibilities and privileges. Thereafter, the master is charged with the task of managing the processing of service requests in the entire system. While this arrangement does allow the system to be managed, it imposes a heavy burden on the master. If the system becomes large enough or complex enough, the master can become a significant bottleneck. As a result, this arrangement does not scale well. Since scalability is one of the advantages of having a distributed system, this approach undermines some of the benefits of having a distributed system in the first place. Given the shortcomings of the current approach, an improved mechanism is needed to manage a distributed system more effectively and efficiently.